package br.com.itc.componentes.util
{
	import mx.controls.dataGridClasses.DataGridColumn;
	import mx.formatters.DateFormatter;
	
	public class TabelaUtil
	{
		
		private static const TAM_CASAS_DECIMAIS:Number = 2;
				
		public function TabelaUtil()
		{
			
		}
		
		//**********
		// Serviços:
		//**********		
		
		public static function defaultLabelFunction(objeto: Object, coluna: DataGridColumn): String {
          var valor: Object = ReflectionUtil.recuperarPropriedade(objeto, recuperarNomePropriedade(coluna));
          return (valor == null) ? "" : String(valor);
      	}
      	
      	public static function defaultDateLabelFunction(objeto: Object, coluna: DataGridColumn): String {               
    	  var formatador: DateFormatter = new DateFormatter();
	      var valor: Object = ReflectionUtil.recuperarPropriedade(objeto, recuperarNomePropriedade(coluna));
	      formatador.formatString = "DD/MM/YYYY";
	      return formatador.format(valor);
      	}
      	
      	public static function defaultDateTimeLabelFunction(objeto: Object, coluna: DataGridColumn): String {               
    	  var formatador: DateFormatter = new DateFormatter();
	      var valor: Object = ReflectionUtil.recuperarPropriedade(objeto, recuperarNomePropriedade(coluna));
	      formatador.formatString = "DD/MM/YYYY HH:NN:SS";
	      return formatador.format(valor);
      	}

		public static function recuperarNomePropriedade(coluna: DataGridColumn):String {
          return coluna.dataField;
      	}
      	
		/**
		 * Método usado para formatar atributo do tipo Booleano
		 * */
        public static function defaultBooleanFunction(objeto:Object, 
        		coluna:DataGridColumn):String {     
			var valor:Object = ReflectionUtil.recuperarPropriedade(objeto, 
					coluna.dataField);
        	if (valor == "true" || valor == true){
        		return "ATIVO";	
        	}else {
        		return "INATIVO";
        	}
        }
        
		/**
		 * Método usado para formatar valores em moedas
		 * */
		public static function defaultValorMoeda(objeto: Object, coluna: DataGridColumn): String {
          var valor: Object = ReflectionUtil.recuperarPropriedade(objeto, recuperarNomePropriedade(coluna));
          return (valor == null) ? "" : FormataNumero.formata(Number(valor),TAM_CASAS_DECIMAIS, false);
      	}        
        
	}
}